package com.pattern.objectcreator.prototype;

import java.util.ArrayList;

/**
 * @author yangguanzan
 * @date 3/18/22
 * @description
 */
public interface BasePrototype extends Cloneable {

    /**
     * 浅克隆
     * @return 对象
     */
    BasePrototype clone();

    /**
     * 深克隆
     * @return 对象
     */
    BasePrototype deepClone();

    /**
     * 获取名称
     * @return 名称
     */
    String getName();
    /**
     * 获取集合
     * @return 集合
     */
    ArrayList getList();
    /**
     * 设置集合
     * @param  list 集合
     */
    void setList(ArrayList list);
    /**
     * 设置名称
     * @param  name 名称
     */
    void setName(String name);
}
